#pragma once
#include "LightSource.h"

namespace lib3dw 
{
	class SpotLightSource : public LightSource
	{
		public:
			SpotLightSource();
			~SpotLightSource();
			LightType GetLightType();
			void SetDirection(GLfloat x, GLfloat y, GLfloat z);
			void SetCutoff(float cut);
			void SetExponent(float exp);
			const GLfloat* GetDirection() const;
			GLfloat GetCutoff();
			GLfloat GetExponent();
			void SetupLightMatrices() const;
			int GetShadowMapSize();

		private:
			GLfloat* direction;
			GLfloat cutoff;
			GLfloat exponent;
			static const int spotLightShadowMapSize = 512;

	};
}